/*
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 *    2013 year ToriSakuraTeam
 *    Author: Mikhail Khromov aka MikeDM (Mike D'Morto)
 *    E-Mail: mikedmorto@gmail.com
 */



#include <QCoreApplication>
#include <QDebug>
#include <QStringList>
#include <QTextCodec>
#include "glogalinc.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    // настройка кодека для корректной обработки русских букв
    QTextCodec *codec1 = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForLocale(codec1);
    QTextCodec::setCodecForTr(codec1);
    QTextCodec::setCodecForCStrings(codec1);

    Config config;

    qDebug()<<"hello!";

    for(int i=0;i<a.arguments().count();i++){
        if (a.arguments().at(i) == "-r"){                   //определение флага "-r"
            if (config.isRecursive==true){                  //проверка флага "-r" на повторение
                qDebug()<<"Ошибка: повторение флага -r";
                exit(1);
            }
            else{
                config.isRecursive=true;
                continue;
            }
        }
        if(a.arguments().at(i) == "-?"){
            qDebug()<<"this is help";
            exit(0);
        }
        if (a.arguments().at(i) =="-v"){                    //определение флага "-v"
            if (config.isVerbose==true){                    //проверка флага -v на повторение
                qDebug()<<"Ошибка: повторение флага -v";
                exit(1);
            }
            else{
                config.isVerbose=true;
                continue;
            }
        }
        if (a.arguments().at(i) == "-d"){                   //определение флага "-d"
            if (config.isDebug==true){                      //проверка флага "-d" на повторение
                qDebug()<<"Ошибка: повторение флага -d";
                exit(1);
            }
            else{
                config.isDebug=true;
                continue;
            }
        }
        if (a.arguments().at(i) == "-o"){                   //определение флага "-o"
            if (config.isOneFile==true){                    //проверка флага -o на повторение
                qDebug()<<"Ошибка: повторение флага -o";
                exit(1);
            }
            else{
                config.isOneFile=true;
                if((i+1)>=a.arguments().count()){           //проверка указания выходного файла
                    qDebug()<<"Ошибка: не указан выходной файл";
                    exit(1);
                }
                else {
                    config.output_file=a.arguments().at(i+1);
                    i++;
                    continue;
                }
            }
        }
        if (config.isPath == true){
            qDebug()<<"Ошибка: повторение пути целевого каталога";
            exit(1);
        }
        else{
            config.isPath = true;
            config.target_path = a.arguments().at(i);
        }
    }

    return a.exec();
}
